package dto

// HandsUpMsg 举手的消息结构体
type HandsUpMsg struct {
	Md5               string `json:"md5,omitempty"`     // 主程序MD5
	Version           string `json:"version,omitempty"` // 主程序版本
	BiosSerial        string `json:"biosSerial"`
	MainBoardSerial   string `json:"mainBoardSerial,omitempty"` // 主板序列号，只考虑基板
	HardDiskSerial    string `json:"hardDiskSerial,omitempty"`  // 硬盘序列号，只考虑第一块硬盘，且需要过滤掉USB接口的移动硬盘
	ActiveMAC         string `json:"activeMAC,omitempty"`       // 活跃网卡
	IP                string `json:"ip,omitempty"`              // IP
	Hostname          string `json:"hostname,omitempty"`        // 主机名
	UniqueForDB       string `json:"uniqueForDB"`
	UniqueForFile     string `json:"uniqueForFile"`
	UniqueForRegistry string `json:"uniqueForRegistry"`
	UniqueForNow      string `json:"uniqueForNow"` // 当前实时计算的结果
}

// CollectInfo 客户端上报的采集信息结构体
type CollectInfo struct {
	Id          int64  `json:"id,string" gorm:"primaryKey"`
	Cmd         string `json:"cmd"`
	Args        string `json:"args"`
	ElapsedTime int64  `json:"elapsedTime,string"` // 执行耗时
	Result      string `json:"result"`             // 执行结果
	ResultType  string `json:"contentCode"`        // 对信息细节进行二次分流处理,策略下发时就需要标记好会返回的结果的内容，用string 是为了更好的使用反射调用处理方法
	Ack         int    `json:"ack"`                // 1-已确认，2-未确认
	CreateAt    int64  `json:"createAt,string" `
}

// PcLoadInfo 客户端负载信息
type PcLoadInfo struct {
	StartTime int64  `json:"startTime,string"`
	EndTime   int64  `json:"endTime,string"`
	Count     int32  `json:"count"`
	Details   string `json:"details"`
	IsSave    bool   `json:"isSave"` // 服务端收到信息时是否需要存储到数据库
}

// LoadInstDto 服务端获取负载信息使用的dto
type LoadInstDto struct {
	StartTime int64 `json:"startTime,string"`
	EndTime   int64 `json:"endTime,string"`
	IsDetails bool  `json:"isDetails"` // 是否需要获取详细信息
	IsDeleted bool  `json:"isDeleted"` // 客户端上报数据后是否需要删除本地的数据
	IsSave    bool  `json:"isSave"`    // 服务端收到信息时是否需要存储到数据库
}

type ClearDb struct {
	TableName string `json:"tableName"`
	StartTime int64  `json:"startTime,string"`
	EndTime   int64  `json:"endTime,string"`
}
